package com.ruoyi.cs.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.cs.domain.TRollCy;
import com.ruoyi.cs.domain.vo.TRollCyVo;
import org.apache.ibatis.annotations.Param;

import javax.xml.crypto.Data;

/**
 * ROLL房间参与Mapper接口
 * 
 * @author ruoyi
 * @date 2021-03-25
 */
public interface TRollCyMapper 
{
    /**
     * 查询ROLL房间参与
     * 
     * @param cyId ROLL房间参与ID
     * @return ROLL房间参与
     */
    public TRollCy selectTRollCyById(String cyId);

    /**
     * 查询ROLL房间参与列表
     * 
     * @param tRollCy ROLL房间参与
     * @return ROLL房间参与集合
     */
    public List<TRollCy> selectTRollCyList(TRollCy tRollCy);

    /**
     * 新增ROLL房间参与
     * 
     * @param tRollCy ROLL房间参与
     * @return 结果
     */
    public int insertTRollCy(TRollCy tRollCy);

    /**
     * 修改ROLL房间参与
     * 
     * @param tRollCy ROLL房间参与
     * @return 结果
     */
    public int updateTRollCy(TRollCy tRollCy);

    /**
     * 删除ROLL房间参与
     * 
     * @param cyId ROLL房间参与ID
     * @return 结果
     */
    public int deleteTRollCyById(String cyId);

    /**
     * 批量删除ROLL房间参与
     * 
     * @param cyIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteTRollCyByIds(String[] cyIds);


    /**
     * 根据用户ID获取ROLL房参与信息
     * @param userId
     * @return
     */
    public List<TRollCy> selectTRollCyByUserId(@Param("userId") String userId,@Param("rollIds") List<String> rollIds);


    /**
     * 获取用户的参与ROLL房信息参与详情
     * @param userId
     * @param rollId
     * @return
     */
    public List<Map> selectTRollCyInfo(@Param("userId") String userId,@Param("rollId") String rollId);

    /**
     * 查询roll房用户参与数量
     *
     * @param userId
     * @param rollId
     * @return
     */
    public Long selectTRollCyUserCount(@Param("userId") String userId, @Param("rollId") String rollId);

    /**
     * 根据rollId分组统计用户参与人数
     * @param rollIds
     * @return
     */
    public List<Map> countUserNumGroupRollId(@Param("rollIds") List<String> rollIds);

    /**
     * 通过ROLLID获取ROLL房的参与信息
     * @param rollId
     * @return
     */
    public List<TRollCy> getTRollCyInfoListByRollId(String rollId);

    /**
     * 后台ROLL房参与奖品记录列表
     * @param tRollCyVo
     * @return
     */
    public List<TRollCyVo> prizeListBack(TRollCyVo tRollCyVo);

    /**
     * 批量指定开奖饰品
     * @param list
     * @return
     */
    public int updateAppointGoodsId(@Param("list") List<TRollCy> list);

    /**
     * ROLL房指定饰品的列表
     * @param goodsBelongingId
     * @return
     */
    public  List<Map> appointGoodsList(String goodsBelongingId);

    public Map<String,Long> countUserNumByRollId(String rollId);

    /**
     * 获取roll房人数
     * @param rollIds
     * @return
     */
    public List<Map<String,Long>> countUserNumByRollIdBatch(@Param("rollIds") List<String> rollIds);

    public Map<String,Object> rollCount(@Param("startTime") String startTime, @Param("endTime") String endTime);

    public Long isAppointGoods(@Param("rollId") String rollId,@Param("appointGoodsId") String appointGoodsId);
}
